Hi SJH,
chan[n].Dest updates smoothly in real time (every 90us). Capture
the Dest so you can analyze how smooth the trajectory is, and
Position to see how well the system is following the trajectory.
See:
C:\KMotion433q\C Programs\CaptureXYMotionPosDest.c
A Bode plot should give some indication of system resonances.
Regards
TK
Hi Tom,
One of our customers is doing some 3-D surface
profiling with a small ball-end mill, and is
finding the surface finish to be somewhat
worse than his old system using
Mach3/SmoothStepper (on the same physical
machine).
The kflop setup uses 1um encoder feedback,
whereas the old system was open loop.
We are trying to track down the reason for this,
but we expect it is because we have not set the
axis parameters optimally for this task. So I
am implementing a data capture system that runs
as a thread in the kflop, which will log the
command and actual positions at (say) 1ms
intervals. The data will be uploaded to the PC
so we can run some numerical analysis.
So the question is, what are the appropriate
fields to capture? My initial thought is to look
at chan[n].Dest and chan[n].Position, although I
am not sure that Dest is going to be updated
smoothly in real-time. For example, if the
interpreter commands a linear move to position X,
does Dest get set to X immediately, or does Dest
increment over time according to the commanded
speed?
Or maybe it would be better to look at
FollowingError and take that as the (negative)
vector displacement from the encoder position back
to the command position at that instant?
Since we have closed loop control, and we optimized
the response fairly tightly using the KMotion.exe step
response, it is possible that we have it "too tight"
in that the compensating motion is exciting some
resonance in the machine frame - this is something
that might not be possible to capture just using the
kflop, but we might be able to see some resonance if
we do a Fourier analysis of the captured data on the
PC.
Regards,
SJH
|
|